package com.kx.test;

import com.kx.my06.SomeServiceImpl;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class MyTest06 {
    @Test
    public void test(){
        String config="applicationContext.xml";
        ApplicationContext ctx=new ClassPathXmlApplicationContext(config);
        SomeServiceImpl proxy= (SomeServiceImpl) ctx.getBean("someService");

        /**
         * 目标类没有接口，使用cglib动态代理，spring框架会自动应用cglib
         * com.kx.my06.SomeServiceImpl$$EnhancerBySpringCGLIB$$ba4b8000
         * 如果你期望目标类有接口，使用cglib代理，转至applicationContext.xml配置
         */
        System.out.println("proxy:"+proxy.getClass().getName());
        //通过代理对象执行方法，实现目标方法执行时，增强了功能
        proxy.doThird();
    }
}
